package ed2.fisico.selecao;

import ed2.base.Operacao;
import ed2.fisico.acesso.ScanTabela;
import ed2.fisico.acesso.Tupla;

public class SelecaoSimples implements Operacao {
	
	private Operacao operacao;
	private String nomeCampo;
	private String valor;
	
	public SelecaoSimples(Operacao operacao, String nomeCampo, String valor) {
		this.operacao = operacao;
		this.nomeCampo = nomeCampo;
		this.valor = valor;
	}
	
	public SelecaoSimples(String operacao, String nomeCampo, String valor) {
		this.operacao = new ScanTabela(operacao);
		this.nomeCampo = nomeCampo;
		this.valor = valor;
	}

	@Override
	public Operacao abrir() {
		operacao.abrir();
		return this;
	}

	@Override
	public Operacao ler() {
		Tupla tupla = null;
		while((tupla = (Tupla) operacao.ler()) != null){
			if(tupla.getValorCampo(nomeCampo).equals(valor)){
				return tupla;
			}
		}
		return null;
	}

	@Override
	public Operacao fechar() {
		operacao.fechar();
		return this;
	}

	@Override
	public long calcularCusto() {
		// TODO Auto-generated method stub
		return 0;
	}

}
